﻿using System;
using System.Collections.Generic;

using System.Text;

namespace Sinacor.Tools.Negocio
{
    //inc - esertorio - 200810061339
    public class SubModulo : NegocioBase<Entidade.SubModulo>
    {
        protected Dado.SubModulo dados = null;
        public override void incluir(Sinacor.Tools.Entidade.SubModulo entidade)
        {
            throw new NotImplementedException();
        }

        public override void alterar(Sinacor.Tools.Entidade.SubModulo entidade)
        {
            throw new NotImplementedException();
        }

        public override void deletar(Sinacor.Tools.Entidade.SubModulo entidade)
        {
            throw new NotImplementedException();
        }

        public override List<Sinacor.Tools.Entidade.SubModulo> consultar(Sinacor.Tools.Entidade.SubModulo entidade)
        {
            dados = new Sinacor.Tools.Dado.SubModulo();
            lock (dados)
            {
                return dados.consultar(entidade);
            }
        }

        public List<Sinacor.Tools.Entidade.SubModulo> consultar()
        {
            lock (new object())
            {
                dados = new Sinacor.Tools.Dado.SubModulo();
                return dados.consultar();
            }
        }

        //exc - esertorio - 200810061340
        //public static int buscarProximoId(Entidade.Modulo entidade)
        //{
        //    lock (new object())
        //    {
        //        Sinacor.Tools.Dado.Modulo dados = new Sinacor.Tools.Dado.Modulo();
        //        object retorno = dados.buscarProximoId(entidade);
        //        if (retorno == null)
        //            retorno = entidade.InicioRangeMensagem;
        //        else if (Convert.ToInt32(retorno) < entidade.InicioRangeMensagem || Convert.ToInt32(retorno) > entidade.FimRangeMensagem)
        //            throw new Exception("O código da exceção retornado (" + Convert.ToString(retorno) + ") não está no range (de " + 
        //                entidade.InicioRangeMensagem.ToString() + " a + " + entidade.FimRangeMensagem.ToString() + ") cadastrado para o módulo, verifique. ");
        //        return Convert.ToInt32(retorno);
        //    }
        //}

        //exc - esertorio - 200810061340
        //public static int buscarProximoId(string descricaoModulo)
        //{
        //    if (string.IsNullOrEmpty(descricaoModulo)) throw new Exception("Módulo passado nulo ou vazio, verifique!");
        //    Entidade.Modulo modulo = new Sinacor.Tools.Entidade.Modulo(descricaoModulo, string.Empty);
        //    Negocio.Modulo nModulo = new Modulo();
        //    List<Sinacor.Tools.Entidade.Modulo> modulos = nModulo.consultar(modulo);
        //    if (modulos.Count == 0) throw new Exception("Não existe módulo cadastrado com a descrição [" + descricaoModulo + "]");
        //    return buscarProximoId(modulos[0]);
        //}
    }
}
